Move the alternative builds into the Jenkinsfile.
Update it to do a FCOS build + kola run.
We drop the flatpak/rpm-ostree runs for now; the former
will needs some work to do the automatic virt bits. The
latter I think we can circle back to when we e.g. figure
out how to include rpm-ostree's tests in kola runs.
COSA_BUILDROOT_IMAGE = 'registry.svc.ci.openshift.org/coreos/cosa-buildroot:latest'
stage("Build") {
-parallel rpms: {
+parallel normal: {
coreos.pod(image: COSA_BUILDROOT_IMAGE, runAsUser: 0) {
checkout scm
+ stage("Core build") {
sh """
set -xeuo pipefail
# fetch tags so `git describe` gives a nice NEVRA when building the RPM
git fetch origin --tags
git submodule update --init
+ env SKIP_INSTALLDEPS=1 ./ci/build.sh
+ """
+ }
+ stage("Unit tests") {
+ try {
+ sh """
+ make check
+ make syntax-check
+ """
+ } finally {
+ archiveArtifacts allowEmptyArchive: true, artifacts: 'test-suite.log'
+ }
+ }
+ sh """
+ make install DESTDIR=\$(pwd)/insttree/
+ tar -c -C insttree/ -zvf insttree.tar.gz .
+ """
+ stash includes: 'insttree.tar.gz', name: 'build'
+ }
+},
+// A minimal build, helps test our build options
+minimal: {
+ coreos.pod(image: COSA_BUILDROOT_IMAGE, runAsUser: 0) {
+ checkout scm
+ sh """
+ set -xeuo pipefail
+ git submodule update --init
+
env NOCONFIGURE=1 ./autogen.sh
- ./configure --with-openssl --with-curl --with-selinux
+ ./configure --without-curl --without-soup --disable-gtk-doc --disable-man \
+ --disable-rust --without-libarchive --without-selinux --without-smack \
+ --without-openssl --without-avahi --without-libmount --disable-rofiles-fuse \
+ --disable-experimental-api
make
"""
}
}
}
}
+
+// Build FCOS and do a kola basic run
+stage("More builds and test") {
+parallel fcos: {
+ coreos.pod(image: COSA_IMAGE, runAsUser: 0, kvm: true, memory: "2048Mi", cpu: "2") {
+ stage("Build FCOS") {
+ checkout scm
+ unstash 'build'
+ sh """
+ set -xeuo pipefail
+ mkdir insttree
+ tar -C insttree -xzvf insttree.tar.gz
+ rsync -rlv insttree/ /
+ coreos-assembler init --force https://github.com/coreos/fedora-coreos-config
+ mkdir -p overrides/rootfs
+ mv insttree/* overrides/rootfs/
+ rmdir insttree
+ coreos-assembler build
+ """
+ }
+ stage("FCOS basic") {
+ timeout(time: 30, unit: 'MINUTES') {
+ sh """
+ set -xeuo pipefail
+ cosa kola run --basic-qemu-scenarios
+ """
+ }
+ }
+ }
+},
+buildopts: {
+ coreos.pod(image: COSA_BUILDROOT_IMAGE, runAsUser: 0) {
+ checkout scm
+ sh """
+ set -xeuo pipefail
+ git submodule update --init
+
+ git worktree add build-rust && cd build-rust
+ env CONFIGOPTS="--enable-rust" SKIP_INSTALLDEPS=1 ./ci/build.sh
+ make check TESTS=tests/test-rollsum
+ cd .. && rm -rf build-rust
+
+ git worktree add build-libsoup && cd build-libsoup
+ env CONFIGOPTS="--without-curl --without-openssl --with-soup" SKIP_INSTALLDEPS=1 ./ci/build.sh
+ make check
+ cd .. && rm -rf build-libsoup
+ """
+ }
+}
+}
+++ /dev/null
-# https://fedoraproject.org/wiki/CI/Tests
-branches:
- - master
- - auto
- - try
-
-context: FAH29-insttests
-required: false
-
-container:
- image: registry.fedoraproject.org/fedora:29
- kvm: true
-
-tests:
- - ci/fah29-insttests.sh
-
-artifacts:
- - tests/installed/artifacts/
-
----
-
-# This suite skips the RPMs and does the build+unit tests in a container
-inherit: false
-branches:
- - master
- - auto
- - try
-required: true
-container:
- image: registry.fedoraproject.org/fedora:29
-context: f29-primary
-env:
- # We only use -Werror=maybe-uninitialized here with a "fixed" toolchain
- CFLAGS: '-fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2'
- # Only for CI with a known g-ir-scanner
- GI_SCANNERFLAGS: '--warn-error'
- ASAN_OPTIONS: 'detect_leaks=0' # Right now we're not fully clean, but this gets us use-after-free etc
- # TODO when we're doing leak checks: G_SLICE: "always-malloc"
- CONFIGOPTS: '--with-curl --with-openssl'
-
-tests:
- - ci/ci-commitmessage-submodules.sh
- - ci/build-check.sh
- - ci/ci-release-build.sh
-
-artifacts:
- - test-suite.log
- - config.log
- - gdtr-results
-
----
-# And now the contexts below here are variant container builds
-
-context: f29-rust
-inherit: true
-container:
- image: registry.fedoraproject.org/fedora:29
-env:
- CONFIGOPTS: '--enable-rust'
- CI_PKGS: cargo
-
-tests:
- - ci/build.sh
- - make check TESTS=tests/test-rollsum
-
----
-
-context: f29-gnutls
-inherit: true
-container:
- image: registry.fedoraproject.org/fedora:29
-env:
- CONFIGOPTS: '--with-crypto=gnutls'
- CI_PKGS: pkgconfig(gnutls)
-
-tests:
- - ci/build.sh
- - make check TESTS=tests/test-basic.sh
-
----
-
-inherit: true
-
-context: f29-minimal
-env:
- CONFIGOPTS: '--without-curl --without-soup --disable-gtk-doc --disable-man
- --disable-rust --without-libarchive --without-selinux --without-smack
- --without-openssl --without-avahi --without-libmount --disable-rofiles-fuse
- --disable-experimental-api'
-
-tests:
- - ci/build.sh
-
----
-
-inherit: true
-required: true
-
-context: f29-libsoup
-
-env:
- CONFIGOPTS: "--without-curl --without-openssl --with-soup"
-
-tests:
- - ci/build-check.sh
-
----
-
-inherit: true
-required: true
-
-context: f29-introspection-tests
-
-env:
- # ASAN conflicts with introspection testing;
- # See https://github.com/ostreedev/ostree/issues/1014
- INSTALLED_TESTS_PATTERN: "libostree/test-sizes.js libostree/test-sysroot.js libostree/test-core.js"
-
-tests:
- - ci/build-check.sh
+++ /dev/null
-# This suite skips the RPMs and does the build+unit tests in a container
-inherit: false
-
-container:
- image: registry.fedoraproject.org/fedora:29
-context: f29-primary
-env:
- # We only use -Werror=maybe-uninitialized here with a "fixed" toolchain
- CFLAGS: '-fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2'
- # Only for CI with a known g-ir-scanner
- GI_SCANNERFLAGS: '--warn-error'
- ASAN_OPTIONS: 'detect_leaks=0' # Right now we're not fully clean, but this gets us use-after-free etc
- # TODO when we're doing leak checks: G_SLICE: "always-malloc"
- CONFIGOPTS: '--with-curl --with-openssl'
-
-tests:
- - ci/ci-commitmessage-submodules.sh
- - ci/build-check.sh
- - ci/ci-release-build.sh
- - make dist-then-build
-
-artifacts:
- - test-suite.log
- - config.log
- - gdtr-results
-
----
-# And now the contexts below here are variant container builds
-
-context: f29-rust
-inherit: true
-container:
- image: registry.fedoraproject.org/fedora:29
-env:
- CONFIGOPTS: '--enable-rust'
- CI_PKGS: cargo
-
-tests:
- - ci/build.sh
- - make check TESTS=tests/test-rollsum
-
----
-
-context: f29-gnutls
-inherit: true
-container:
- image: registry.fedoraproject.org/fedora:29
-env:
- CONFIGOPTS: '--with-crypto=gnutls'
- CI_PKGS: pkgconfig(gnutls)
-
-tests:
- - ci/build.sh
- - make check TESTS=tests/test-basic.sh
-
----
-
-inherit: true
-
-context: f29-minimal
-env:
- CONFIGOPTS: '--without-curl --without-soup --disable-gtk-doc --disable-man
- --disable-rust --without-libarchive --without-selinux --without-smack
- --without-openssl --without-avahi --without-libmount --disable-rofiles-fuse
- --disable-experimental-api'
-
-tests:
- - ci/build.sh
-
----
-
-inherit: true
-
-context: f29-libsoup
-
-env:
- CONFIGOPTS: "--without-curl --without-openssl --with-soup"
-
-tests:
- - ci/build-check.sh
-
----
-
-inherit: true
-
-context: f29-introspection-tests
-
-env:
- # ASAN conflicts with introspection testing;
- # See https://github.com/ostreedev/ostree/issues/1014
- INSTALLED_TESTS_PATTERN: "libostree/test-sizes.js libostree/test-sysroot.js libostree/test-core.js"
-
-tests:
- - ci/build-check.sh
-
----
-
-# Reset inheritance for non-variant builds
-inherit: false
-
-context: f29-flatpak
-
-# This test case wants an "unprivileged container with bubblewrap",
-# which we don't have right now; so just provision a VM and do a
-# docker --privileged run.
-host:
- distro: fedora/29/atomic
- specs:
- ram: 4096 # build-bundle is a static delta, which needs RAM right now
-
-tests:
- - docker run --rm --privileged -v $(pwd):/srv/code registry.fedoraproject.org/fedora:29 /bin/sh -c "cd /srv/code && ./ci/flatpak.sh"
-
-artifacts:
- - test-suite.log
-
----
-
-# Run rpm-ostree's vmcheck. This is a temporary hack until
-# we share more code. https://github.com/projectatomic/rpm-ostree/issues/662
-inherit: false
-
-context: f29-rpmostree
-
-cluster:
- hosts:
- - name: vmcheck
- distro: fedora/29/atomic
- container:
- image: registry.fedoraproject.org/fedora:29
-
-env:
- HOSTS: vmcheck
- # This should roughly match the Fedora spec file, although right now we don't
- # explicitly enable gtk-doc because we don't really need it
- CONFIGOPTS: '--with-selinux --with-dracut=yesbutnoconf --with-curl --with-openssl'
-
-tests:
- - ./ci/rpmostree.sh
-
-artifacts:
- - test-suite.log
- - vmcheck
-
-timeout: 60m
if (skip_if_no_xattr (td))
goto out;
+ if (getenv ("container"))
+ {
+ // FIXME dedup this with libtest.sh have_selinux_relabel
+ g_test_skip ("skip in containers for now");
+ goto out;
+ }
if (td->skip_all != NULL)
{